package com.baigt.jvm.base;

/**
 * 类功能描述:
 *
 *        System.out.println("----------");
 *         System.out.println(Son01.parent);
 * //        System.out.println("-------------");
 * //        new Parent01();
 *         //这里输出是什么？
 *         //System.out.println(Son01.son);
 * //        Parent01[] parent01s=new Parent01[1]; //他的类型是什么呢？
 *
 *
 *
 *
 *           接口怎么初始化？
 * @author Administrator
 * @version V1.0
 * @since 2019-06-06 20:29
 */
public class _01First {
    public static void main(String[] args) {
        // print what?
        new Parent01();
        // print what? print num?
//        new Son01();
    }
}

class Parent01 {
    public static String parent = "hello ricky baba";
    // 如果没有static修饰会是什么情况呢？
    static {
        System.out.println("parent01 init");
    }
}

class Son01 extends Parent01 {
    public static String son = "hello ricky son";
    static {
        System.out.println("son01 init");
    }
}

interface ParentInterface01{
    // 怎么知道这个接口是否初始化？
    public static int val=5;
}

/**
 *  继承父类时 子类初始化时 父类也初始化
 *  那类实现接口时是接口会初始化么？
 */
class Son02 implements ParentInterface01{
    public static int valson=1;
    static {
        System.out.println("Son02 init");
    }
}

interface ParentInterface02{
    public static Thread thread=new Thread(){
        {
            System.out.println("ParentInterface02 init thread instance");
        }
    };
}

/**
 * 调用子接口(Son03)的thread变量，执行结果是什么？
 */
interface Son03 extends ParentInterface02{
    public static Thread thread=new Thread(){
        {
            System.out.println("Son03 init thread instance");
        }
    };
}

